﻿using System;
using System.Drawing.Printing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

using AsmDependency.Utility;
//using AsmDependency.Documents;

namespace AsmDependency.Core.Services
{
    public interface IPreferencesService
    {
        CPreferencesStore GetPreferencesStore(Type storeOwnerType);
        bool GetPreferencesStore(Type storeOwnerType, out CPreferencesStore preferencesStore);
        void ResetPreferencesStore(Type storeOwnerType);
    }

    public interface IDataObjectMappingService
    {
        IDataObjectMapper GetDataObjectMapper(string fromDataFormat, string toDataFormat);
        IDataObjectMapper GetDataObjectMapper(IDataObject dataObj, string toDataFormat);
    }

    public interface IDataObjectMapper
    {
        bool CanMapDataObject(IServiceProvider serviceProvider, IDataObject dataObject);
        bool PerformMapping(IServiceProvider serviceProvider, IDataObject originalDataObject, DataObject mappedDataObject);
    }

    public interface IComponentGalleryService
    {
        CLibrary BrowseGallery(string typeFilter);
    }

    public interface IClassViewService
    {
        void ShowType(string searchString);
        void ShowType(Type type);
    }

    public interface IWebBrowsingService
    {
        bool BrowseUrl(string url);
    }

    //public interface IPrintService
    //{
    //    void ConfigurePrintSettings();
    //    void PreviewDocument(IPrintableDocument document);
    //    void PrintDocument(IPrintableDocument document);
    //}
}
